GtkLabel: optimize away some ::notify emissions
authorMatthias Clasen <mclasen@redhat.com>
Sun, 26 Jun 2011 02:42:17 +0000 (22:42 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 5 Jul 2011 20:08:09 +0000 (16:08 -0400)
gtk/gtklabel.c

index e16ea33368f264ec54fd15e2dbcc05ab5e62cdde..313da1909303926b0b8d9a1a042d4f00bcf478f4 100644 (file)
@@ -5431,6 +5431,13 @@ gtk_label_select_region_index (GtkLabel *label,
           priv->select_info->selection_end == end_index)
         return;
 
+      g_object_freeze_notify (G_OBJECT (label));
+
+      if (priv->select_info->selection_anchor != anchor_index)
+        g_object_notify (G_OBJECT (label), "selection-bound");
+      if (priv->select_info->selection_end != end_index)
+        g_object_notify (G_OBJECT (label), "cursor-position");
+
       priv->select_info->selection_anchor = anchor_index;
       priv->select_info->selection_end = end_index;
 
@@ -5469,9 +5476,6 @@ gtk_label_select_region_index (GtkLabel *label,
 
       gtk_widget_queue_draw (GTK_WIDGET (label));
 
-      g_object_freeze_notify (G_OBJECT (label));
-      g_object_notify (G_OBJECT (label), "cursor-position");
-      g_object_notify (G_OBJECT (label), "selection-bound");
       g_object_thaw_notify (G_OBJECT (label));
     }
 }